package Scanner;
use Term::ANSIColor;
use LWP::Simple;
use strict;

use constant ScannerLogo => <<ScannerLG;
                                                    _         _   _
   ___ ___  __ _ _ __  _ __   ___  _  __       ___ | |_ __ _ | |_|_|___
  / __|  _\\/ _´ | ´_ \\| ´_ \\ / _ \\| |/ _| ___ / __|| __/ _´ || __/_/  _\\
  \\__ \\ |_| (_| | | | | | | |  __/|  _/  |___|\\__ \\| || (_| || | | | |_
  |___/___/\\__,_|_| |_|_| |_|\\___||_|         |___/ \\_\\\\__,_| \\_\\|_|___/
  
ScannerLG

sub ShowLogo
{
  print colored(ScannerLogo, 'cyan');
}

sub CheckSqlVulnerability
{
  my ($input, $web, $ret);
  $web = $_[0];
  $web = ($web !~ /http/) ? 'http://'.$web : $web;
  $web =~ m/((www|http:\/\/)([^\/]+))/;
  print "[*] Alvo: ", colored("$1\n", 'white');
  $input = get($web.'\'') or die colored("\n\tNão foi possível conectar-se ao servidor.\n", 'red bold');
  $ret = ($input =~ m/(SQL syntax|Fatal error)/g) ? 'está' : 'não está';
  print "\nWebsite $ret vulnerável.\n";
  exit;
}

package Exception;
use strict;

use constant
{
  NO_PARAM => 0,
  HELP => 1
};

my @error = ("Erro: nenhum parâmetro encontrado!\n --help para ajuda.",
 "\nComo usar: scanner.pl [options]\nOptions:\n\t--help\t\tmostra a ajuda\n\t-d, --dork\tdork para usar\n\t-a, --archive\tarquivo de saída para a lista de sites vulneráveis\n\t-w, --website\tcheca um site específico\n");
sub Show
{
  print $error[$_[0]];
  exit;
}

1;
